package eva.savant.business.compras.view

import eva.savant.business.material.view.Bean
import eva.savant.businessobject.gl.Persona
import eva.savant.businessobject.cm.Comprador
import eva.savant.businessobject.cm.Solicitud
import eva.savant.businessobject.cm.SolicitudDetalle

import javax.faces.bean.ManagedBean
import javax.faces.bean.SessionScoped
import javax.annotation.PostConstruct

@SessionScoped
@ManagedBean(name = 'ITConfirmar')
public class ITConfirmar extends Bean {

  @PostConstruct
  public void cleanEntity() {

    focus= 'personaId:complete'


    entity= new Solicitud(); init()

    entity.solicitud= new Date()

    entity.necesidad= new Date()

    entity.persona= new Persona()

    entity.comprador= new Comprador()

    entity.lsSolicitudDetalle= new ArrayList<SolicitudDetalle>()


    lsEntity= new ArrayList<Solicitud>()



    entity.comprador= get(Comprador,'persona.id=?',usuario.persona.id)

    if(entity.comprador == null) { addErrorMessage 'El usuario no esta registrado como comprador' }
  }

  public List findLsEntity() {

    return find(Solicitud.class,'persona.id=? and confirmacion is null order by id desc',usuario.persona.id)
  }

  public void editEntity(Object id) {

    entity= get(Solicitud.class,id)

    for(x in entity.lsSolicitudDetalle) if(x.confirmado <= 0) x.confirmado= x.solicitado
  }

  public boolean mergeEntity(Object entity) { alta((Solicitud)entity); entity= (Solicitud) entity

    if(entity.lsSolicitudDetalle?.size() < 1) { addErrorMessage 'El detalle de productos esta vacio'; return false }

    entity.confirmacion= new Date()

   return merge(entity) != null
  }

}
